Manual Unpacking
Здравейте Хора в този Тut ще се позанимаем с manual unpacking демек ръчно да unpack-нем нa някоя програма.Това е моя пръв Тут за ънпакване и веоятно няма да е много добър.Но сами се оверете;П
Стига съм говорил глупости и нека да започваме!
Първо да се запознаем с PACK-ването като цяло.Pack-ване на някоя програма означава нейното компресиране с цел защита на самото EXE от кракери.В този tut ще unpack-нем един от най-комерсиалните пакери а именно UPX .Но първо трябва да си изтеглите това notepad.exe.
За целта ще ни е нужно:
ProcDump 1.6.2(или по-висока)
OllyDbg
и малко познания за PE headera
Стъпки при работа:
break-ване на packer entry point-a
намиране на истинския entry point i dump-ване на еxe-то
поправяне на packer entrz point с истинския
rebuild-ване на еxe-то
Така нека да започнем със същинската част.Стартирайте notepad.exe s OllyDbg и ще се отзовете на packer entry point.
Би трябвало да видите следното:

Koндата pushad save-ва всички регистри.Taзи команда се използва доста често при пакерите.За всяка команда pushad съответства на popad.Затова трябва да турсим по-надолу суответстващата команда popad и след нея jmp eax,където в EAX е истинския Entrz Point на това notepad.exe.Затова scroll-вате малко по надолъ(не трайсвате а scroll-вате)и когато срещнете POPAD сложете breakpoint на него с F2.С хьшсяхеше F,което сте ви отведе точно на командата POPAD.Натиснете един път F8 сте на JMP-a към Original Entry Point.

Jmp-a който виждате по горе е JMP-a към истинския Entry Point(който е 004010cc).Но понеже това е base address трябва до го превурнете в Virtuall Address(като извадите от base address 00400000,при което ще се получи 000010CC.Но преди да се занимаваме с Entry Point трябва да dump-нем exe-то.За целта стартирайте процдумп(kato ollydbg го оставете включен)Преди това трябва да сте сигурни че сте достигнали достигнали до JMP-a към Entry Pointa

Дайте с дясното копче на мишката(като сте сигурни че сте избрали процела notepad.exe,посочен горе на Pica) и изберете Dump(Full).Като новото еxe го слойете някуде на HDD-то ви,така че да знаете куде се намира и го наименовайте примерно unpacked.exe.След това изберете от ProcDump-a Pe Editor и избирате нашето току що dump-нато еxe(unpacked.exe).После му сменяте Entry Point-a от 0000E970 на 000010CC(истинския Entry Point,който по рано намерихме.След това натиснете OK.
После стартираите опцията от ProcDump Rebuild PE(виждате я по-горе)И изберете нашия dump-нат File(unpacked.exe)
И би трябвало да ви излезе съобщение за успешното rebuild-ване.
Най-накрая сте готови да стартирате вашето unpacked.exe и всичко би трябвало да върви нормално.Като го Disassemblirate ще виждате всички resource-и на exe-то и Функциите му.
Надявам се този tutorial да ви е помогнал поне малко.Ако имате някакви забележки или допълнения кум tutorial-a можете да ми пишете на :stanko_popov@abv.bg
Greetings:Shade,Pumqara,El_Primo,Muffy,Ilevo,_-pe6o-_,DLSBG,Checksum_Bad,Nex,Cyco and all I've missed
Group:,#biocide,#cracking4newbies